home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / util / libs / jpeglibrary50.lha / jpeglibrary / autodocs / jpeg.autodoc
Text File  |  1999-01-30  |  21KB  |  659 lines

  1. TABLE OF CONTENTS
  2.  
  3. jpeg.library/--background--
  4. jpeg.library/--future--
  5. jpeg.library/--history--
  6. jpeg.library/--information--
  7. jpeg.library/AllocBufferFromJPEGA
  8. jpeg.library/AllocJPEGCompressA
  9. jpeg.library/AllocJPEGDecompressA
  10. jpeg.library/CompressJPEGA
  11. jpeg.library/DecompressJPEGA
  12. jpeg.library/FreeJPEGBuffer
  13. jpeg.library/FreeJPEGCompress
  14. jpeg.library/FreeJPEGDecompress
  15. jpeg.library/GetJPEGInfoA
  16. jpeg.library/--background--                       jpeg.library/--background--
  17.  
  18.    PURPOSE
  19.  To allow de/compression of images into/from the jpeg image format.
  20.  
  21.    COPYRIGHT
  22.  The copyright in this library is owned by Paul Huxham.
  23.  This software is based in part on the work of the Independent JPEG Group.
  24.  The jpeg de/compression routines are copyright by the Independent
  25.  JPEG Group, written by Thomas G. Lane.
  26.  
  27.    DISCLAIMER
  28.  jpeg.library and its associated files are supposed to enable jpeg images
  29.  to be de/compressed. Even though every effort has been made to make
  30.  jpeg.library as stable and functional as possible, I cannot rule out the
  31.  possibility that jpeg.library may have bugs that have side effects
  32.  (possibly harmful) on your system.
  33.  
  34.  I hereby reject any liability or responsibility for these or any other
  35.  consequences from the use of jpeg.library whatsoever. This includes, but
  36.  is not limited to, damage to your equipment, to your data, personal
  37.  injuries, financial loss or any other kinds of side effects.
  38.  
  39.  jpeg.library is provided as-is. This means I do not guarantee that
  40.  jpeg.library is fit for any specific purpose and I do not guarantee any
  41.  bug fixes, updates or help during error recovery.
  42.  
  43.    DISTRIBUTION
  44.  jpeg.library should be distributed at no charge to the end user. It may
  45.  be included on Aminet CDs.
  46.  
  47.  The author retains all rights to the enclosed software. Payment is not
  48.  required for the use of jpeg.library.
  49.  
  50.    REQUIREMENTS
  51.  A minimum of Kickstart 2.0 and 68020 CPU is required to use jpeg.library.
  52.  
  53.    COMPLIER
  54.  jpeg.library was written and compiled using CED V3.5 and SAS/C 6.55 on
  55.  an Amiga 4000/060. CyberGuard was used to detect/correct programming
  56.  errors.
  57.  
  58.    BUGS
  59.  Should you find any bugs, please report them so that they can be fixed.
  60.  Likewise any suggestions for improvment of the library should be
  61.  forwarded so that they can be addressed.
  62.  
  63.    THANKYOUS
  64.  Many thanks to
  65.    Dinh Thi Kim Tuyen
  66.      -Who makes the sky blue and the world turn. I love you, forevermore.
  67.  
  68.    Steve Quartly
  69.      - For saying its possible and then helping me do it.
  70.  
  71.    Stephan Rupprecht
  72.      - For includes/jpeg_lib.h for different compilers.
  73.  
  74.    AUTHOR
  75.   You can contact the author via:
  76.     email: paulh@mafeking.scouts.org.au
  77.     www: http://mafeking.scouts.org.au/~paulh/
  78.   or
  79.     P.O. Box 875
  80.     Morley,
  81.     Perth,
  82.     Western Australia 6943
  83.  
  84. jpeg.library/--future--                               jpeg.library/--future--
  85.  
  86.  Support the writing and reading of JFIF APP0 markers, which stores jpeg
  87.  codec version numbers and horizontal and vertical pixel densities.
  88.  
  89.  Support the writing and reading of Adobe markers.
  90.  
  91. jpeg.library/--history--                             jpeg.library/--history--
  92.  
  93.  V5.0
  94.   > Fixed 3 #define errors in the old AllocRGB functions in jpeg.h.
  95.  
  96.   > The jpeg code is now based on jpegsrc.v6b.tar.gz obtained from the
  97.     Independent JPEG Groups web site "http://www.ijg.org/".
  98.  
  99.   > Added JPEG_BlockSmoothing to allow switching cross block smoothing
  100.     during image decoding on and off (defaults to on).
  101.  
  102.   > Added JPEG_Progressive to enable jpeg streams to be created in
  103.     progressive mode (defaults to off).
  104.  
  105.   > The example source code save_file.c now has a progressive tag for
  106.     testing progressive saving (currently set to FALSE, enable to test).
  107.  
  108.   > Updated the documentation.
  109.  
  110.  V4.2
  111.   > Corrected some small documentation typos in jpeg.h.
  112.  
  113.   > Fixed a bug where if the source jpeg stream was in CMYK format, the
  114.     wrong colourspace format was returned from GetJPEGInfo().
  115.  
  116.   > Renamed AllocRGBBufferFromJPEG() to AllocBufferFromJPEG() and
  117.     FreeJPEGRGBBuffer() to FreeJPEGBuffer(). Old code will continue to
  118.     work because of some defines in jpeg.h.
  119.  
  120.  V4.0
  121.   > Corrected some small typos in the documentation.
  122.  
  123.   > Added DCTMethods for de/compression. These can offset speed versus
  124.     quality. Check jpeg.h for the methods and tag to use.
  125.  
  126.  V3.2
  127.   > Fixed a bug where when decompressing using a render hook, the userdata
  128.     was not passed to the hook.
  129.  
  130.   > Added a new pragmas file which contains pragmas for different
  131.     compilers, thanks to Stephan Rupprecht for his help.
  132.  
  133.  V3.1
  134.   > Fixed a bug where when decompressing to memory using memory pools
  135.     resulted in a 4k memory loss until the freeing of the memory pool.
  136.  
  137.  V3.0
  138.   > Fixed a bug where aborting de/compression returned DE/COMPFAILURE not
  139.     DE/COMPABORTED.
  140.  
  141.   > Some documentation errors and omissions are now fixed.
  142.  
  143.   > Added a render callback hook for use during image decompression.
  144.  
  145.   > Added memory pool support for image compression into a memory
  146.     destination stream.
  147.  
  148.  V2.1
  149.   > Fixed a bug when there is insufficient memory and the library
  150.     attempted to use temporary files (previously would fail to load the
  151.     image). Now it will ask for a JPEGTMP: assignment to store the
  152.     temporary files into.
  153.  
  154.   > Previously the maximum memory to use was fixed at 1 meg. Now it is
  155.     10% less than the total amount of free memory. If there is still
  156.     insufficient memory, temporary files will be used.
  157.  
  158.   > Implemented progress indicator callback hooks for compression and
  159.     decompression.
  160.  
  161.   > Added some additional error codes such as not a jpeg file etc (see
  162.     jpeg.h)
  163.  
  164.   > Updated the example code to show new features of the library. Fixed
  165.     some documentation problems in the example code.
  166.  
  167.  V1.0
  168.   > Initial release.
  169.  
  170. jpeg.library/--information--                     jpeg.library/--information--
  171.  
  172.  Although the documentation is not extensive, the examples are fairly well
  173.  layed out and easy to follow. They all use different methods of
  174.  accessing jpeg.library. You can choose the one that suits your
  175.  application best.
  176.  
  177.  It is EXTREMELY IMPORTANT to check the colour space of the jpeg image you
  178.  have decoded (or are about to decode). For example, in a JPCS_GRAYSCALE
  179.  only one third the amount of information is returned compared to an rgb
  180.  triplet buffer as the grayscale image data is normally one byte per
  181.  pixel. For JPCS_UNKNOWN, check the number of bytes per pixel to establish
  182.  if the data is grayscale or not. For JPCS_RGB, the image data will be
  183.  returned as an rgb triplet array.
  184.  
  185. jpeg.library/AllocBufferFromJPEGA           jpeg.library/AllocBufferFromJPEGA
  186.  
  187.    NAME
  188.   AllocBufferFromJPEGA -- Allocate a jpeg decompression buffer (V1)
  189.   AllocBufferFromJPEG -- Varargs stub (V1)
  190.  
  191.    SYNOPSIS
  192.  buffer = AllocBufferFromJPEGA( jph, taglist )
  193.                              a0   a1
  194.  
  195.  void *AllocBufferFromJPEGA( struct JPEGDecHandle *jph,
  196.                           struct TagItem *taglist )
  197.  
  198.  buffer = AllocBufferFromJPEG( jph, tag1, ... )
  199.  
  200.  void *AllocBufferFromJPEG( struct JPEGDecHandle *jph, ULONG tag1, ... )
  201.  
  202.    FUNCTION
  203.  Allocates enough memory to hold the decompressed version of the jpeg in
  204.  memory. The colourspace can be obtained from GetJPEGInfo(). This
  205.  function does not allocate an RGB sized buffer, but allocates enough
  206.  memory to hold the decoded image.
  207.  
  208.    INPUTS
  209.  taglist  - pointer to an optional tag list specifying how to modify the
  210.             image data.
  211.  
  212.   Modifiers (used, but not saved in the jpeg handle):
  213.    JPG_ScaleNum      - Return values as though scaled with this value.
  214.    JPG_ScaleDenom    - Return values as though scaled with this value.
  215.  
  216.    RESULT
  217.  buffer - is NULL for any error, or a pointer to the memory allocated.
  218.  
  219.    WARNING
  220.  
  221.    BUGS
  222.  
  223.    NOTES
  224.  If you obtained your image sizes from GetJPEGInfo() and used scale tags,
  225.  you SHOULD also pass those same tag values to this function to allocate
  226.  the buffer, otherwise the buffer allocated will be the original size of
  227.  the image.
  228.  
  229.  Previously this function was named AllocRGBFromJPEGA(). There are defines
  230.  in jpeg.h to allow older code to be compiled. Please refrain from using
  231.  the older names in new code.
  232.  
  233.    SEE ALSO
  234.  FreeJPEGBuffer()
  235.  
  236. jpeg.library/AllocJPEGCompressA               jpeg.library/AllocJPEGCompressA
  237.  
  238.    NAME
  239.   AllocJPEGCompressA -- Allocate a jpeg compression handle (V1)
  240.   AllocJPEGCompress -- Varargs stub (V1)
  241.  
  242.    SYNOPSIS
  243.  err = AllocJPEGCompressA( jph, taglist )
  244.                              a0   a1
  245.  
  246.  err = AllocJPEGCompressA( struct JPEGComHandle **jph,
  247.                              struct TagItem *taglist )
  248.  
  249.  err = AllocJPEGCompress( jph, tag1, ... )
  250.  
  251.  err = AllocJPEGCompress( struct JPEGComHandle **jph, ULONG tag1, ... )
  252.  
  253.    FUNCTION
  254.  Allocates a new jpeg handle.
  255.  
  256.   Available tags:
  257.    JPG_DestMemStream     - A pointer to a UBYTE pointer to take the data
  258.                            generated by the compressor (if specified, must
  259.                            also specify the JPG_DestMemStreamSize tag).
  260.                            See NOTE below about this allocated memory.
  261.    JPG_DestMemStreamSize - A pointer to a ULONG to take the size of the
  262.                            compressed data (if specified, must also
  263.                            specify the JPG_DestMemStream).
  264.    JPG_DestFile          - A BPTR to an already open AmigaDOS file.
  265.  
  266.   New tags requiring V3.0
  267.    JPG_MemoryPool        - A pointer to a exec V39 memory pool to store
  268.                            the compressed jpeg data into. (NOT freed on
  269.                            exit.)
  270.  
  271.    INPUTS
  272.  jph - pointer to a struct JPEGComHandle pointer.
  273.  taglist - pointer to a tag list specifying the destination for the
  274.            compressed data and data size.
  275.  
  276.    RESULT
  277.  err - if non NULL contains an error code. (For a complete list of error
  278.        codes, see jpeg.h)
  279.  
  280.    WARNING
  281.  
  282.    BUGS
  283.  
  284.    NOTES
  285.  You are responsible for freeing the memory allocated to you, by calling
  286.  FreeVec() on the pointer supplied to AllocJPEGCompress() (if it isnt a
  287.  NULL value).
  288.  
  289.  BUT if you are using the new JPG_MemoryPool tag in object allocation,
  290.  call an appropriate pool or puddle free routine.
  291.  
  292.    SEE ALSO
  293.  FreeJPEGCompressA(), CompressJPEGA()
  294.  
  295. jpeg.library/AllocJPEGDecompressA           jpeg.library/AllocJPEGDecompressA
  296.  
  297.    NAME
  298.   AllocJPEGDecompressA -- Allocate a jpeg decompression handle (V1)
  299.   AllocJPEGDecompress -- Varargs stub (V1)
  300.  
  301.    SYNOPSIS
  302.  err = AllocJPEGDecompressA( jph, taglist )
  303.                              a0   a1
  304.  
  305.  err = AllocJPEGDecompressA( struct JPEGDecHandle **jph,
  306.                              struct TagItem *taglist )
  307.  
  308.  err = AllocJPEGDecompress( jph, tag1, ... )
  309.  
  310.  err = AllocJPEGDecompress( struct JPEGDecHandle **jph, ULONG tag1, ... )
  311.  
  312.    FUNCTION
  313.  Allocates a new jpeg handle.
  314.  
  315.   Available tags:
  316.    JPG_SrcMemStream     - The source image is a segment of memory starting
  317.                           at this address.
  318.    JPG_SrcMemStreamSize - The length of the memory based segment, in bytes.
  319.    JPG_SrcFile          - A BPTR to an already open AmigaDOS file.
  320.  
  321.    INPUTS
  322.  jph - pointer to a struct JPEGDecHandle pointer.
  323.  taglist - pointer to a tag list specifying the jpeg stream source and
  324.            size.
  325.  
  326.    RESULT
  327.  err - if non NULL contains an error code. (For a complete list of error
  328.        codes, see jpeg.h)
  329.  
  330.    WARNING
  331.  
  332.    BUGS
  333.  
  334.    SEE ALSO
  335.  FreeJPEGDecompressA(), DecompressJPEGA()
  336.  
  337. jpeg.library/CompressJPEGA                         jpeg.library/CompressJPEGA
  338.  
  339.    NAME
  340.   CompressJPEGA -- Compress a jpeg stream (V1)
  341.   CompressJPEG -- Varargs stub (V1)
  342.  
  343.    SYNOPSIS
  344.  err = CompressJPEGA( jph, taglist )
  345.                         a0   a1
  346.  
  347.  err = CompressJPEGA( struct JPEGComHandle *jph,
  348.                         struct TagItem *taglist )
  349.  
  350.  err = CompressJPEG( jph, tag1, ... )
  351.  
  352.  err = CompressJPEG( struct JPEGComHandle **jph, ULONG tag1, ... )
  353.  
  354.    FUNCTION
  355.  Compresses a jpeg stream into the location specified by
  356.  AllocJPGCompress() using the supplied tags.
  357.  
  358.   Available tags:
  359.    JPG_SrcRGBBuffer      - An RGB triplet buffer containing the source
  360.                            image.
  361.    JPG_CompressHook      - Calls a user specified function (see jpeg.h)
  362.    JPG_CompressUserData  - User data passed to the hook function.
  363.    JPG_Width             - Width of the image (REQUIRED).
  364.    JPG_Height            - Height of the image (REQUIRED).
  365.    JPG_Quality           - Jpeg save quality (1-100), defaults to 85.
  366.    JPG_BytesPerPixel     - The number of bytes per image pixel, defaults
  367.                            to 3.
  368.    JPG_ColourSpace       - The type of image data stored in the buffer,
  369.                            defaults to JPCS_RGB (see jpeg.h for others).
  370.    JPG_Smoothing         - Apply image smoothing while saving (0-100),
  371.                            defaults to none (0).
  372.  
  373.   New tags requiring V2.1
  374.    JPG_ProgressHook      - Calls a user specified function (see jpeg.h).
  375.                             DO NOT pass a hook structure pointer here. Put
  376.                             a pointer to your function. (See examples).
  377.                             Returning a non NULL value from the hook will
  378.                             abort a load in progress.
  379.    JPG_ProgressUserData  - User data passed to the hook function (void *).
  380.  
  381.   New tags requiring V4.0
  382.    JPG_DCTMethod         - The DCT processing method to use for encoding,
  383.                            defaults to DCT_ISLOW (see jpeg.h for others).
  384.  
  385.   New tags requiring V5.0
  386.    JPG_Progressive       - If TRUE, the jpeg stream will be created in
  387.                            progressive mode, defaults to FALSE.
  388.  
  389.    INPUTS
  390.  jph - pointer to a struct JPEGComHandle.
  391.  taglist - pointer to a tag list.
  392.  
  393.    RESULT
  394.  err - if non NULL contains an error code. (For a complete list of error
  395.        codes, see jpeg.h)
  396.  
  397.    WARNING
  398.  
  399.    BUGS
  400.  
  401.    NOTES
  402.  You are responsible for freeing the memory allocated to you, by calling
  403.  FreeVec() on the pointer supplied to AllocJPEGCompress().
  404.  
  405.  BUT if you are using the new JPG_MemoryPool tag in object allocation,
  406.  call an appropriate pool or puddle free routine.
  407.  
  408.  e.g.
  409.  
  410.   UBYTE *cstream;
  411.   ULONG cstreamsize;
  412.  
  413.   err = AllocJPEGCompress( &jpc, JPG_DestMemStream, &cstream,
  414.           JPG_DestMemStreamSize, &cstreamsize, TAG_DONE );
  415.  
  416.   err = CompressJPEG( jpc, JPG_SrcRGBBuffer, buffer,
  417.           JPG_Width, x, JPG_Height, y, TAG_DONE );
  418.  
  419.   FreeJPEGCompress( jpc );
  420.  
  421.   /* Use the buffer here */
  422.  
  423.   if ( cstream != NULL ) FreeVec( cstream );
  424.  
  425.    SEE ALSO
  426.  AllocJPEGCompressA(), FreeJPEGCompressA()
  427.  
  428. jpeg.library/DecompressJPEGA                     jpeg.library/DecompressJPEGA
  429.  
  430.    NAME
  431.   DecompressJPEGA -- Decompress a jpeg stream (V1)
  432.   DecompressJPEG -- Varargs stub (V1)
  433.  
  434.    SYNOPSIS
  435.  err = DecompressJPEGA( jph, taglist )
  436.                         a0   a1
  437.  
  438.  err = DecompressJPEGA( struct JPEGDecHandle *jph,
  439.                         struct TagItem *taglist )
  440.  
  441.  err = DecompressJPEG( jph, tag1, ... )
  442.  
  443.  err = DecompressJPEG( struct JPEGDecHandle **jph, ULONG tag1, ... )
  444.  
  445.    FUNCTION
  446.  Decompresses a jpeg stream as specified by AllocJPGDecompress() and
  447.  supplied tags.
  448.  
  449.   Available tags:
  450.    JPG_DestRGBBuffer      - The decompressed image data is stored as RGB
  451.                             triplets starting at this address. You must
  452.                             allocate enough memory to take the image. Use
  453.                             AllocRGBFromJPEG() to allocate the required
  454.                             memory space.
  455.    JPG_DecompressHook     - Calls a user specified function (see jpeg.h).
  456.                             DO NOT pass a hook structure pointer here. Put
  457.                             a pointer to your function. (See examples)
  458.    JPG_DecompressUserData - User data passed to the hook function (void *).
  459.    JPG_ScaleNum           - Scale decompressed data with this value.
  460.    JPG_ScaleDenom         - Scale decompressed data with this value.
  461.  
  462.   New tags requiring V2.1
  463.    JPG_ProgressHook       - Calls a user specified function (see jpeg.h).
  464.                             DO NOT pass a hook structure pointer here. Put
  465.                             a pointer to your function. (See examples).
  466.                             Returning a non NULL value from the hook will
  467.                             abort a load in progress.
  468.    JPG_ProgressUserData   - User data passed to the hook function (void *).
  469.  
  470.   New tags requiring V3.0
  471.    JPG_RenderHook         - Calls a user specified function (see jpeg.h).
  472.                             DO NOT pass a hook structure pointer here. Put
  473.                             a pointer to your function. (See examples).
  474.                             Returning a non NULL value from the hook will
  475.                             abort a load in progress.
  476.    JPG_RenderUserData     - User data passed to the hook function (void *).
  477.  
  478.   New tags requiring V4.0
  479.    JPG_DCTMethod         - The DCT processing method to use for decoding,
  480.                            defaults to DCT_ISLOW (see jpeg.h for others).
  481.  
  482.   New tags requiring V5.0
  483.    JPG_BlockSmoothing    - If TRUE, apply cross block smoothing during
  484.                            image decoding, defaults to TRUE.
  485.  
  486.    INPUTS
  487.  jph - pointer to a struct JPEGDecHandle.
  488.  taglist - pointer to a tag list.
  489.  
  490.    RESULT
  491.  err - if non NULL contains an error code. (For a complete list of error
  492.        codes, see jpeg.h)
  493.  
  494.    WARNING
  495.  The jpeg code has a limition on scaling where, num must always be 1 and
  496.  denom can be either: 1, 2, 4, or 8. Undefined results occur if this is
  497.  not adhered to.
  498.  
  499.    BUGS
  500.  
  501.    SEE ALSO
  502.  AllocJPEGDecompressA(), FreeJPEGDecompressA()
  503.  
  504. jpeg.library/FreeJPEGBuffer                       jpeg.library/FreeJPEGBuffer
  505.  
  506.    NAME
  507.   FreeJPEGBuffer -- Free a jpeg decompression buffer (V1)
  508.  
  509.    SYNOPSIS
  510.  FreeJPEGBuffer( buffer )
  511.                     a0
  512.  
  513.  void FreeJPEGBuffer( void *buffer )
  514.  
  515.    FUNCTION
  516.  Frees a buffer allocated with AllocBufferFromJPEGA().
  517.  
  518.    INPUTS
  519.  buffer - Pointer to the allocated buffer returned by
  520.           AllocBufferFromJPEG().
  521.  
  522.    RESULT
  523.  
  524.    WARNING
  525.  
  526.    BUGS
  527.  
  528.    NOTES
  529.  Previously this function was named AllocRGBFromJPEGA(). There are defines
  530.  in jpeg.h to allow older code to be compiled. Please refrain from using
  531.  the older names in new code.
  532.  
  533.    SEE ALSO
  534.  AllocBufferFromJPEG()
  535.  
  536. jpeg.library/FreeJPEGCompress                   jpeg.library/FreeJPEGCompress
  537.  
  538.    NAME
  539.   FreeJPEGCompress -- Free a jpeg compression handle (V1)
  540.  
  541.    SYNOPSIS
  542.  err = FreeJPEGCompress( jph )
  543.                             a0
  544.  
  545.  err = FreeJPEGCompress( struct JPEGComHandle *jph )
  546.  
  547.    FUNCTION
  548.  Frees a jpeg handle.
  549.  
  550.    INPUTS
  551.  jph - pointer to a struct JPEGComHandle.
  552.  
  553.    RESULT
  554.  err - if non NULL contains an error code. (For a complete list of error
  555.        codes, see jpeg.h)
  556.  
  557.    WARNING
  558.  
  559.    BUGS
  560.  
  561.    NOTES
  562.  You are responsible for freeing the memory allocated to you by
  563.  CompressJPEG(), by calling FreeVec() on the pointer supplied to
  564.  AllocJPEGCompress().
  565.  
  566.  BUT if you are using the new JPG_MemoryPool tag in object allocation,
  567.  call an appropriate pool or puddle free routine.
  568.  
  569.    SEE ALSO
  570.  AllocJPEGCompressA(), CompressJPEGA()
  571.  
  572. jpeg.library/FreeJPEGDecompress               jpeg.library/FreeJPEGDecompress
  573.  
  574.    NAME
  575.   FreeJPEGDecompress -- Free a jpeg decompression handle (V1)
  576.  
  577.    SYNOPSIS
  578.  err = FreeJPEGDecompress( jph )
  579.                             a0
  580.  
  581.  err = FreeJPEGDecompress( struct JPEGDecHandle *jph )
  582.  
  583.    FUNCTION
  584.  Frees a jpeg handle.
  585.  
  586.    INPUTS
  587.  jph - pointer to a struct JPEGDecHandle.
  588.  
  589.    RESULT
  590.  err - if non NULL contains an error code. (For a complete list of error
  591.        codes, see jpeg.h)
  592.  
  593.    WARNING
  594.  
  595.    BUGS
  596.  
  597.    SEE ALSO
  598.  AllocJPEGDecompressA(), DecompressJPEGA()
  599.  
  600. jpeg.library/GetJPEGInfoA                           jpeg.library/GetJPEGInfoA
  601.  
  602.    NAME
  603.   GetJPEGInfoA -- Get information about a jpeg handle (V1)
  604.   GetJPEGInfo -- Varargs stub (V1)
  605.  
  606.    SYNOPSIS
  607.  err = GetJPEGInfoA( jph, taglist )
  608.                      a0   a1
  609.  
  610.  err = GetJPEGInfoA( struct JPEGDecHandle *jph, struct TagItem *taglist )
  611.  
  612.  err = GetJPEGInfo( jph, tag1, ... )
  613.  
  614.  err = GetJPEGInfo( struct JPEGDecHandle *jph, ULONG tag1, ... )
  615.  
  616.    FUNCTION
  617.  Retrieves information about the jpeg handle and returns the values in
  618.  variables passed in with the taglist.
  619.  
  620.   Available tags:
  621.    JPG_Width         - Returns the width of the decoded image (ULONG).
  622.    JPG_Height        - Returns the height of the decoded image (ULONG).
  623.    JPG_BytesPerPixel - Returns the number of bytes for every pixel,
  624.                        (usually 3 - JPCS_RGB) (ULONG).
  625.    JPG_RowSize       - Returns the width in bytes of one pixel row (ULONG).
  626.    JPG_ColourSpace   - Returns the type of colour space stored in the jpeg
  627.                        image (see jpeg.h for result codes) (UBYTE)
  628.  
  629.   Modifiers (used, but not saved in the jpeg handle):
  630.    JPG_ScaleNum      - Return values as though scaled with this value.
  631.    JPG_ScaleDenom    - Return values as though scaled with this value.
  632.  
  633.  The jpeg code has a limition on scaling where, num must always be 1 and
  634.  denom can be either: 1, 2, 4, or 8.
  635.  
  636.  Only JPEGDecHandles can have values read from them, JPEGComHandle passed
  637.  to this function returns a JPGERR_NONE and the taglist remains untouched.
  638.  
  639.    INPUTS
  640.  jph - pointer to a struct JPEGDecHandle.
  641.  taglist - pointer to an optional tag list specifying what data items to
  642.             retrieve for this jpeg handle.
  643.  
  644.    RESULT
  645.  err - if non NULL contains an error code. (For a complete list of error
  646.        codes, see jpeg.h)
  647.  
  648.    WARNING
  649.  
  650.    BUGS
  651.  
  652.    EXAMPLE
  653.  
  654.  err = GetJPEGInfo( jph, JPG_Width, &x, JPG_Height, &y, TAG_DONE );
  655.  
  656.    SEE ALSO
  657.  
  658.  
  659.